home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / bin / decryptdir < prev    next >
Text File  |  1995-07-21  |  1KB  |  58 lines

  1. #!/usr/skunk/bin/expect --
  2. # Name: cryptdir
  3. # Author: Don Libes, NIST
  4. #
  5. # Synopsis:
  6. #      cryptdir [dir]
  7. #    decryptdir [dir]
  8. #
  9. # Encrypt or decrypts the current directory or named directory if given.
  10.  
  11. if {[llength $argv] > 0} {
  12.     cd $argv
  13. }
  14.  
  15. # encrypt or decrypt?
  16. set decrypt [regexp "decrypt" $argv0]
  17.  
  18. set timeout -1
  19. stty -echo
  20. send "Password:"
  21. expect -re "(.*)\n"
  22. send "\n"
  23. set passwd $expect_out(1,string)
  24.  
  25. # wouldn't want to encrypt files with mistyped password!
  26. if !$decrypt {
  27.     send "Again:"
  28.     expect -re "(.*)\n"
  29.     send "\n"
  30.     if ![string match $passwd $expect_out(1,string)] {
  31.         send_user "mistyped password?"
  32.         stty echo
  33.         exit
  34.     }
  35. }
  36. stty echo
  37.  
  38. log_user 0
  39. foreach f [glob *] {
  40.     set strcmp [string compare .crypt [file extension $f]]
  41.     if $decrypt {
  42.         # skip files that don't end with ".crypt"
  43.         if 0!=$strcmp continue
  44.         spawn sh -c "exec crypt < $f > [file root $f]"
  45.     } else {
  46.         # skip files that already end with ".crypt"
  47.         if 0==$strcmp continue
  48.         spawn sh -c "exec crypt < $f > $f.crypt"
  49.     }
  50.     expect "key:"
  51.     send "$passwd\r"
  52.     expect
  53.     wait
  54.     exec rm -f $f
  55.     send_tty "."
  56. }
  57. send_tty "\n"
  58.